﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.SessionState;
using eCRAM.Model;
using eCRAM.WebSite.Models;

namespace eCRAM.WebSite.Tools
{
    public static class SessionTools
    {
       

        private static HttpSessionState Session
        {
            get { return HttpContext.Current.Session; }   
        }

        private static SessionData SessionData
        {
            get { return Session["MySessionData"] as SessionData ; }
            set { Session["MySessionData"] = value; }
        }

        public static User User
        {
            get
            {
                if (SessionData == null)
                {
                    return null;
                }
                return SessionData.CurrentUser;
            }
            set
            {
                if(SessionData == null)
                {
                    SessionData = new SessionData();
                }
                SessionData.CurrentUser = value;
            }
        }

        /// <summary>
        /// Détermine si l'utilisateur est un administrateur ou chef de projet
        /// </summary>
        public static bool UserIsAdministratorOrProjectLeader
        {
            get { return User.Role == (int) UserRole.Administrator || User.Role == (int) UserRole.ProjectLeader; }
        }

        /// <summary>
        /// Détermine si l'utilisateur est un administrateur
        /// </summary>
        public static bool UserIsAdministrator
        {
            get { return User.Role == (int)UserRole.Administrator ; }
        }

        /// <summary>
        /// Détermine si l'utilisateur est un   chef de projet
        /// </summary>
        public static bool UserIsProjectLeader
        {
            get { return User.Role == (int)UserRole.ProjectLeader; }
        }
    }
}